1. Field of the Invention
The present invention relates to pervasive device computing and more particularly to the field of data synchronization for pervasive devices.
2. Description of the Related Art
Personal computers no longer are the most common vehicle through which users connect to data communications networks like the Internet. Now that computing can be viewed as being truly everywhere, computer scientists and information technologists have begun to rethink those services that can be provided to meet the needs of mobile computing users. In consequence, the study of pervasive computing has resulted in substantial innovation in the field of network connectivity. “Pervasive computing” has been defined as referring to any non-constrained computing device not physically tethered to a data communications network. Thus, pervasive computing devices refer not only to computers wirelessly linked to networks, but also to handheld computing devices, wearable systems, embedded computing systems and the like.
Most pervasive devices, including notebook computers, handheld computers and even data enabled cellular telephones permit data synchronization with a different computing device, for example a desktop computer. Data synchronization refers to the harmonization of data between two data sources such that the data contained in each data source can be reconciled notwithstanding changes to the data applied in either or both of the data sources. Modern pervasive devices provide for a synchronization process through a direct cable link, a modem link, or a network link to a host computing device. Wireless pervasive devices further can accommodate synchronization over infrared or radio frequency links.
Excessive and unnecessary consumption of computing resources arises in the context of filtered synchronization. In filtered synchronization, updates can be filtered according to specified filtering criteria. As a result, only a subset of available updates will be pushed to the pervasive device. Filtered synchronization can occur at the manual behest of an end user, or dynamically as changes are detected in the pervasive device. In the latter circumstance, an event can be triggered whenever a change is detected resulting in a synchronization. Recognizing that events can occur in groupings within a short period of time, it is common to wait in response to an event for a period of time in order to provide for batched synchronization of several changes at once.
Once a batch of changes have been queued for synchronization, a background process can execute in which the filtered synchronization can be performed while foreground applications continue to function. Yet, it is to be recognized that data synchronization can be resource intensive and can degrade or outright impede the performance of the pervasive device. Further, to the extent that resources within the pervasive device fall below a critical level of availability—for instance, battery life, central processing unit (CPU) cycles, communications bandwidth or memory—a data synchronization can prevent foreground tasks in the pervasive device or indeed the pervasive device itself from functioning.